﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Guarouba.Pages
{
    public partial class Default : Guarouba.Pages.PaginaBase
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
        }

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        private bool ValidaCampos()
        {
            if (txtUsuario.Text == string.Empty || txtSenha.Text == string.Empty)
            {
                PopUpModal.PopUpModal("Erro na autenticação", "Informe nome de usuário e senha para efetuar o login.", 4);
                return false;
            }

            return true;
        }

        protected void btLogin_Click(object sender, EventArgs e)
        {            
            //Valida inserções do usuário
            bool isValid = ValidaCampos();
            if (!isValid)
                return;

            BLL.Seguranca.entUsuario entUs = new BLL.Seguranca.entUsuario();
            entUs.Login = txtUsuario.Text;
            entUs.Senha = Classes.Tools.Encript(txtSenha.Text);

            try
            {
                BLL.Seguranca seg = new BLL.Seguranca();
                bool isValidLogin = seg.LoginUsuario(entUs);
                PopUpModal.PopUpModal("Sucesso", "Logou com sucesso.", 3);

                string idUsuario = entUs.IdUsuario;
                idUsuario = Classes.Tools.Encript(idUsuario);

                //Criar o Cookie que armazena a sessão do usuário
                HttpCookie ck = new HttpCookie("grba");
                DateTime now_ = DateTime.Now;
                ck.Values.Add("IDUsuario", idUsuario);
                ck.Values.Add("NomeUsuario", entUs.NomeCompleto);

                //Se o usuário deseja continuar conectado, set expires 1 ano
                if (ckbMantenhaConectado.Checked == true)
                    ck.Expires = now_.AddDays(365);
                else
                    ck.Expires = now_.AddHours(1);

                //Escrever o Cookie
                Response.Cookies.Add(ck);

                //Verifica se tem Página de Retorno pela QS
                if (Request.QueryString["CRPage"] != null)
                {
                    string urlRetorno = Classes.Tools.Decript(Request.QueryString["CRPage"].ToString());
                    Response.Redirect(String.Format("~/Pages/{0}", urlRetorno));
                }
                else
                {
                    //Redirecionando o usuário para a tela inicial do sistema
                    Response.Redirect("~/Pages/PersonalPage.aspx");
                }                
            }
            catch (Exception ex)
            {
                PopUpModal.PopUpModal("Erro na autenticação", ex.Message, 4);
            }  
        }
    }
}